<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>

    <style>
        * {
            padding: 0;
            margin: 0;
        }

        .wrapper {
            width: 600px;
            height: 300px;
            border: 1px solid black;

            display: flex;
            flex-direction: row;
            justify-content: flex-start;
            align-items: center;
            flex-wrap: nowrap;
        }
        .content {
            flex-basis: 150px;
            width: 200px;
            height: 100px;
            flex-shrink: 1;
            background-color: #0f0;
            word-break: break-word;    
        }
        .content:first-child {
            background-color: hotpink;
        }
        .content:last-child {
            background-color: #09f;
        }

        /* 

            注意：下面的说法被内容横向撑开，是产生溢出的情况，正常文字也不会横向溢出，都会换行的
            所以正常情况下，basis就是宽度，听他的，容器会正常被压缩

            有的时候发生异常，可以尝试添加word-break属性
        
            basis：
            1.
            在你设置宽的时候，如果basis设置有值，且小于设置的width，那么真实的宽的范围
            在 basis < realWidth < width
            意思就是没有内容，取值为basis
            有内容的话，随着内容不断变长，元素真实的宽度也会变长但不会长过设置的width

            但是如果设置的width小于basis，听basis的，真实宽度就是basis



            2.
            不设置basis，basis会和width设置的值保持一致，不管有没有内容


            3.
            在你不设置width的时候，但设置了basis，元素真实的宽的最小值等于 basis，如果不换行的内容横着溢出，容器会被撑开
            这时不管有没有内容，元素真实的最小宽度都是basis


            无论什么情况，被不换行内容撑开的容器，不会被压缩计算
            即压缩的时候，容器被压缩的极限就是不换行内容的宽度
         */

    </style>
</head>
<body>
    <div class="wrapper">
        <div class="content">1</div>
        <div class="content"></div>
        <!-- 文字溢出会在下一个元素的下面 -->
        <div class="content">3</div>
        <div class="content">3</div>
        <div class="content">3</div>
        <div class="content">3</div>
        <div class="content">3</div>
        <div class="content">3</div>
        <div class="content">3</div>
        <div class="content">3</div>
        <div class="content">3</div>
        <div class="content">3</div>
    </div>
</body>
</html>